package 数组题目.数组变换;

// 移动零
// https://leetcode.cn/problems/move-zeroes/
//给定一个数组 nums，编写一个函数将所有 0 移动到数组的末尾，同时保持非零元素的相对顺序。
class 移动零到数组尾部 {
    public void moveZeroes(int[] nums) {
        // 记录第一个0的位置
        int cur = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] != 0) {
                if (nums[cur] == 0) {
                    int temp = nums[i];
                    nums[i] = nums[cur];
                    nums[cur] = temp;
                }
                cur++;
            } else {
                if (nums[cur] != 0) {
                    cur = i;
                }
            }
        }
    }
}
